*HEADING	MXM-AD14.AZM MEX overlay for ADAM home computers
	LIST	A
	LIST	B
	LIST 	G
	LIST	X
;
;	ADAMEX OVERLAY WITH AUTO-DIAL,CARRIER DETECTION (WITH RETURN TO
;	MEX COMMAND MODE ON LOSS OF CARRIER IN TERMINAL MODE.)
;	SET COMMAND PROCESSOR INCLUDES SET ANS, SET ORG, SET ON, SET
;	BC?(5,6,7,OR 8), SET SB?(1,1.5,2), SET NPA,OPA,EPA(PARITY),
;	SET SCRN30,SETS SCREEN WIDTH TO 30, SET SCRN80, SET WAIT ??(5-
;	50 IN 5 SECOND STEPS) SETS WAITING TIME FOR CALL AND DIAL TO
;	WAIT FOR A CARRIER.
;	Written by Bruce T. Lytle (c) 1985
;	Released for Public Domain use only
;	12-3-1985
;----------------------------------------------------------------------
;Misc. EQU's
;----------------------------------------------------------------------
NO	EQU	0
YES	EQU	0FFH
TPA	EQU	100H
CR	EQU	13
LF	EQU	10
TAB	EQU	9
CCLS	EQU	0CH
CEOS	EQU	0BH
CCP	EQU	0006H
;
;----------------------------------------------------------------------
; ADAM modem port EQU's
;----------------------------------------------------------------------
MODCTL	EQU	05FH	;modem control port
MODDAT	EQU	05EH	;modem data port
;----------------------------------------------------------------------
;
NULL	EQU	080H
STPB1	EQU	040H	; 1 stop bit
STPB15	EQU	080H	; 1.5 stop bits
STPB2	EQU	0C0H	; 2 stop bits
BITS5	EQU	000H	; 5 bits/char.
BITS6	EQU	004H	; 6 bits/char.
BITS7	EQU	008H	; 7 bits/char.
BITS8	EQU	00CH	; 8 bits/char.
EP	EQU	020H	; 1=even parity,0=odd
PEN	EQU	010H	; 1=enable parity,0=disable
NO_PAR	EQU	00H
EVNPAR	EQU	30H
ODDPAR	EQU	10H
X64	EQU	003H	; 64x clock rate=300 baud
DEFAULT	EQU	STPB1+BITS8	;8 BITS/CHAR., 1 STOP BIT, NOPAR
EHM	EQU	080H	; 1=Enter Hunt Mode
IR	EQU	040H	; Internal Reset
RTS	EQU	020H	; set RTS to 0, enable xmitter
ER	EQU	010H	; reset ERror conditions
SBRK	EQU	008H	; Send BReaK [TXD goes 'low']
RXE	EQU	004H	; Receive Enable
TXE	EQU	001H	; Transmit Enable
DTR	EQU	002H	; set DTR to 0, seize phone line
;
;----------------------------------------------------------------------
; STATUS BIT EQUATES
;----------------------------------------------------------------------
;
TXRDY	EQU	0	; indicates transmitter empty
RXRDY	EQU	1	; indicates valid character ready
TXMT	EQU	2	; indicates buffer empty
P_ERR	EQU	3	; set when parity error detected
OE	EQU	4	; set on overrun error
FE	EQU	5	; set on framing error
BD	EQU	6	; set when breack detected
DSR	EQU	7	; indicates carrier detect
CD	EQU	DSR	; CARRIER DETECT
;
;
; MEX processor stuff..... MEX has a service processor much like CP/M
; to handle files, etc. anytime you would call a BDOS function you 
; should call MEX instead.  The following EQUATES point to the MEX
; (BDOS) function you need to use in your program(overlay).
;
;
MEX	EQU	0D00H		; address of service processor
INMDM	EQU	255		; get char from port to A
TIMER	EQU	254		; delay 100ms * reg B
TMDINP	EQU	253		; B=# sec to wait for char, cy=no char
CHEKCC	EQU	252		; check for ^C from KBD, Z=present
SNDRDY	EQU	251		; test for modem send ready
RCVRDY	EQU	250		; test for modem receive ready
SNDCHR	EQU	249		; send a character to the modem (after
				; sndrdy)
RCVCHR	EQU	248		; recv a char from modem (after rcvrdy)
LOOKUP	EQU	247		; table search
PARSFN	EQU	246		; parse filename from input stream
BDPARS	EQU	245		; parse baudrate form input stream
SBLANK	EQU	244		; scan input stream to mext non-blank
EVALA	EQU	243		; evaluate numeric from input stream
LKAHED	EQU	242		; get next char w/o removing form input
GNC	EQU	241		; get char from input, cy=1 if none
ILP	EQU	240		; inline print
DECOUT	EQU	239		; decimal output
PRBAUD	EQU	238		; print baud-rate
;
;
CONOUT	EQU	2		; simulated BDOS function 2
PRINT	EQU	9		; simulated BDOS function 9
INBUF	EQU	10		; input buffer see BDOS 10
;
;
	ORG	100H		; here we go finally!
;
;
	DS	3		; MEX jump start
PMODEM:	DB	NO
SMODEM:	DB	NO
TPULSE:	DB	'P'
CLOCK:	DB	37
MSPEED:	DB	1
BYTDLY:	DB	5
CRDLY:	DB	5
COLUMS:	DB	2
SETFL:	DB	YES		;SET commands implemented
SCRTST:	DB	YES		;cursor controls added
	DB	0
BAKFLG:	DB	NO
CRCDFL:	DB	YES
TOGCRC:	DB	YES
CVTBS:	DB	NO
TOGLBK:	DB	NO
ADDLF:	DB	NO
TOGLF:	DB	YES
TRNLOG:	DB	NO
SAVCCP:	DB	YES
LOCNXT:	DB	NO
TOGLOC:	DB	YES
LSTTST:	DB	YES
XOFTST:	DB	YES
XONWT:	DB	YES
TOGXOF:	DB	YES
IGNCTL:	DB	YES
EXTRA1:	DB	0
EXTRA2:	DB	0
BRKCHR:	DB	('@'-40H)
NOCONN:	DB	('N'-40H)
LOGCHR:	DB	('L'-40H)
LSTCHR:	DB	('P'-40H)
UNSVCH:	DB	('R'-40H)
TRNCHR:	DB	('T'-40H)
SAVCHR:	DB	('Y'-40H)
EXTCHR:	DB	('^'-40H)
	DB	0
	DB	0
INCTL:	JP	IN_URT
	DS	7
;
OTDATA:	OUT	(MODDAT),A
	RET
	DS	7
;
INPORT:	IN	A,(MODDAT)
	RET
	DS	7
;
MASKR:	AND	2
	RET
;
TESTR:	CP	2
	RET
;
MASKS:	AND	1
	RET
;
TESTS:	CP	1
	RET
	DS	12
***********************************************************************
*                        JUMP TABLE                                   *
***********************************************************************
;
LOGON:	DS	2
DIALV:	JP	PDIAL
DISCV:	JP	HANGUP
GOODBV:	JP	DUMMY
INMODV:	JP	NITMOD
NEWBDV:	DS 	3
NOPARV:	RET
	NOP
	NOP
PARITV:	RET
	NOP
	NOP
SETUPV:	JP	SETCMD
SPMENV:	DS	3
VERSNV:	JP	SYSVER
BREAKV:	JP	PBREAK
	DS	18
CLREOS:	LD	DE,EOSMSG
	LD	C,PRINT
	CALL	MEX
	RET
CLS:	LD	DE,CLSMSG
	LD	C,PRINT
	CALL	MEX
	RET
;
***********************************************************************
*                   END OF FIXED AREA !!!                             *
***********************************************************************
;At NITMOD insert any subroutine you want run at start-up.
NITMOD:	CALL	STSCR3
	LD	A,IR
	OUT	(MODCTL),A
	OUT	(MODCTL),A
CHGMOD:	OUT	(MODCTL),A
	LD	A,(MODEWD)
	OUT	(MODCTL),A
	LD	A,(CMDWRD)
	OUT	(MODCTL),A
	AND	RTS
	RET	NZ
	LD	A,RXE+TXE+RTS+DTR
	OUT	(MODCTL),A
	LD	A,RXE+TXE+DTR
	OUT	(MODCTL),A
	LD	A,RXE+TXE+RTS+DTR
	OUT	(MODCTL),A
	RET
CMDWRD:	DB	RXE+TXE+RTS
MODEWD:	DB	DEFAULT+X64
CARTMW:	DB	96H
;
FRINT:	LD	C,PRINT
	CALL	MEX
	RET
;
PBREAK:	PUSH	AF
	PUSH	BC
	LD	A,03FH	;break mask
	OUT	(MODCTL),A
	LD	B,3
	LD	C,TIMER
	CALL	MEX
	LD	A,037H
	OUT	(MODCTL),A
	POP	BC
	POP	AF
	RET
;
DUMMY:	CALL	STSCR8
	LD	A,IR
	OUT	(MODCTL),A
	LD	A,0
	OUT	(MODCTL),A	;SHUT IT DOWN!
	LD	HL,(CCP)
	JP	(HL)
;
SYSVER:	LD	DE,VERMSG
	CALL	FRINT
	JP	STSHOW
;
**************************
*    DIALING ROUTINES    *
**************************
;
DELAY:	PUSH	BC
	LD	HL,8000H
	LD	DE,8000H
	LD	BC,1594
	LDIR
	POP	BC
	DJNZ	DELAY
	RET
;
;
PDIAL:	CP	254
	JR	Z,STDIAL
	CP	255
	JR	Z,ENDIAL
DIAL:	PUSH	AF
	PUSH	BC
	PUSH	DE
	PUSH	HL
;
	CP	'P'
	JR	Z,PAUSE
	CP	'p'
	JR	Z,PAUSE
	CP	','
	JR	Z,PAUSE
	CP	'9'+1
	JR	NC,BAD_DGT
	CP	'0'
	JR	C,BAD_DGT
	JR	NZ,CHAR_OK
	LD	A,'9'+1
CHAR_OK:
	SUB	'0'
	LD	B,A
	CALL	RNGBELL
PLSE_LP:
	LD	A,RXE+TXE+RTS
	OUT	(MODCTL),A
	PUSH	BC
	LD	B,6
PLP1:	CALL	DELAY
	POP	BC
	LD	A,RXE+TXE+RTS+DTR
	OUT	(MODCTL),A
	PUSH	BC
	LD	B,4
PLP2:	CALL	DELAY
	POP	BC
; NEXT PULSE
;
	DJNZ	PLSE_LP
	LD	(CMDWRD),A
PAUSE:
	LD	B,80
	CALL	DELAY
BAD_DGT:
	POP	HL
	POP	DE
	POP	BC
	POP	AF
	RET
STDIAL:	LD	A,0
	CALL	SEIZE
	LD	B,30
	LD	C,TIMER
	CALL	MEX
	RET
;
ENDIAL:	LD	A,(CARTMW)
	LD	D,A
WAIT:	LD	B,2
	LD	C,TIMER
	CALL	MEX
	CALL	CD_STAT
	JR	NZ,LINKUP
	CALL	U_STAT
	JR	C,ERABRT
	LD	C,CHEKCC
	CALL	MEX
	JR	Z,ABORT
	DEC	D
	JR	NZ,WAIT
	CALL	HANGUP
	LD	A,2
	RET
;
;
ABORT:	CALL	HANGUP
	LD	A,3
	RET
;
;
LINKUP:
	LD	A,0
	RET
;
;
ERABRT:	CALL	HANGUP
	LD	A,4
	RET
;
;
RNGBELL:
	PUSH	AF
	PUSH	BC
	LD	E,07H
	LD	C,CONOUT
	CALL	MEX
	POP	BC
	POP	AF
	RET
;
; CARRIER STATUS
; 	EXIT:	NZ=CARRIER DETECT
;		 Z=NO CARRIER
CD_STA:	IN	A,(MODCTL)
	BIT	DSR,A
	RET
;
U_STAT:	IN	A,(MODCTL)
	OR	A
	JR	URT_CM
URTERR:	SCF
URT_CM:	BIT	RXRDY,A
	RET
;
;
IN_URT:	CALL	CD_STA
	JR	Z,LOSCAR
	IN	A,(MODCTL)
	RET
;
;
;	LOST CARRIER
;	prints "LOST CARRIER" message
;	and then attempts to get back to MEX
LOSCAR:	LD	DE,LOSCAM
	CALL	FRINT
	CALL	HANGUP
	LD	A,24H
	JP	0FF0H
;
;
***********************
*   Seize Line        *
***********************
;
; Entry: A=0 for Originate mode
;        A=0FFH for Answer mode
; Exit:  Carrier is enabled
;        Registers A & C get trashed
SEIZE:	LD	C,A	;save
	LD	A,RXE+TXE+RTS+DTR
	LD	(CMDWRD),A
	OUT	(MODCTL),A
	LD	A,C
	OR	A
	RET	Z	;all done
***********************************************************
;
;ANSWER_MODE
;switches modem directly to answer mode
;assumes modem off-hook
;*******EXIT:	REG. A TRASHED
ANSMOD:	LD	A,RXE+TXE+DTR
	LD	(CMDWRD),A
	OUT	(MODCTL),A
	LD	A,RXE+TXE+RTS+DTR
	OUT	(MODCTL),A
	RET
***********************************************************
;
;
HANGUP:			;trashes reg. A
	LD	A,RXE+TXE+RTS
	LD	(CMDWRD),A
	OUT	(MODCTL),A
	RET
***********************************************************************
;
;SET COMMANDS:
;-------------
;
;SET this displays modem parameters (parity, bits/char., # of stop bit
;s, originate/answer mode, and present carrier status
;
;SET ? or SET HELP  this displays valid command extensions
;
;SET ANS this seizes the phone line in answer mode
;
;SET ON  this seizes the phone line in originate mode
;
;SET ORG this switches to originate mode but does not seize the phone line
;note SET ans,on, OR org forces disconnect
;
;SET SB1  1 stop bit
;SET SB15  1.5 stop bits
;SET SB2   2 stop bits
;
;SET NPA	no parity
;SET OPA	odd parity
;SET EPA	even parity
;
;SET BC5	5 bits/char.
;SET BC6	6 bits/char.
;SET BC7	7 bits/char.
;SET BC8	8 bits/char.
;
;SET SCRN30   	set screen width to 30 char./line
;SET SCRN80	set screen width to 80 char./line
;
;SET WAIT __	set time to wait for carrier (5 sec. increments.
***********************************************************************
SETCMD:	LD	C,SBLANK
	CALL	MEX
	JR	C,STSHOW
	LD	DE,CMDTBL
	LD	C,LOOKUP
	CALL	MEX
	PUSH	HL
	RET	NC
	POP	HL
STERR:
	LD	DE,STERRM
	CALL	FRINT
	RET
;
STSHOW:
	CALL	SETSRT
	CALL	MODESW
	CALL	PASHOW
	CALL	BCSHOW
	CALL	SBSHOW
	CALL	CARSHW
	CALL	WTSHOW
	RET
;
SETSRT:	LD	DE,ST_MSG
	CALL	FRINT
	RET
;
MODESW:
	LD	DE,MODMSG
	CALL	FRINT
	LD	A,(CMDWRD)
	AND	RTS
	JR	Z,A_MODE
	LD	DE,ORGMSG
	JR	MODE_R
A_MODE:	LD	DE,ANSMSG
MODE_R:	CALL	FRINT
	RET
;
BCSHOW:
	LD	DE,ST1MSG
	CALL	FRINT
	LD	A,(MODEWD)
	AND	0CH
	CP	BITS8
	JR	NZ,TRY_7
	LD	E,'8'
	JR	BC_NUM
TRY_7:	CP	BITS7
	JR	NZ,TRY_6
	LD	E,'7'
	JR	BC_NUM
TRY_6:	CP	BITS6
	JR	NZ,TRY_5
	LD	E,'6'
	JR	BC_NUM
TRY_5:	LD	E,'5'
BC_NUM:	LD	C,CONOUT
	CALL	MEX
	RET
PASHOW:
	LD	DE,ST2MSG
	CALL	FRINT
	LD	A,(MODEWD)
	AND	30H
	CP	EVNPAR
	JR	NZ,TRY_O
	LD	DE,EVNMSG
	JR	P_SHOW
TRY_O:	CP	ODDPAR
	JR	NZ,NONPAR
	LD	DE,ODDMSG
	JR	P_SHOW
NONPAR:	LD	DE,NONMSG
P_SHOW:	CALL	FRINT
	RET
SBSHOW:
	LD	DE,ST3MSG
	CALL	FRINT
	LD	A,(MODEWD)
	AND	0C0H
	CP	STPB1
	JR	NZ,TRY_15
	LD	DE,SB1MSG
	JR	SB_NUM
TRY_15:	CP	STPB15
	JR	NZ,TRY_2
	LD	DE,SB5MSG
	JR	SB_NUM
TRY_2:	CP	STPB2
	JR	NZ,BAD_SB
	LD	DE,SB2MSG
	JR	SB_NUM
BAD_SB:	LD	DE,BADMSG
SB_NUM:	CALL	FRINT
	RET
CARSHW:	LD	DE,CARMSG
	CALL	CD_STAT
	JR	NZ,C_SHOW
	LD	DE,NOCARM
C_SHOW:	CALL	FRINT
	RET
WTSHOW:	LD	DE,SRTWTS
	CALL	FRINT
	LD	A,(CARTMW)
	CP	25
	JR	NZ,WT10
	LD	DE,SEC_5
WT_PRN:	CALL	FRINT
	LD	DE,SECM
	CALL	FRINT
	RET
WT10:	CP	50
	JR	NZ,WT15
	LD	DE,SEC_10
	JR	WT_PRN
WT15:	CP	75
	JR	NZ,WT20
	LD	DE,SEC_15
	JR	WT_PRN
WT20:	CP	100
	JR	NZ,WT25
	LD	DE,SEC_20
	JR	WT_PRN
WT25:	CP	125
	JR	NZ,WT30
	LD	DE,SEC_25
	JR	WT_PRN
WT30:	CP	150
	JR	NZ,WT35
	LD	DE,SEC_30
	JR	WT_PRN
WT35:	CP	175
	JR	NZ,WT40
	LD	DE,SEC_35
	JR	WT_PRN
WT40:	CP	200
	JR	NZ,WT45
	LD	DE,SEC_40
	JR	WT_PRN
WT45:	CP	225
	JR	NZ,WT50
	LD	DE,SEC_45
	JR	WT_PRN
WT50:	LD	DE,SEC_50
	JR	WT_PRN
;
;
CMDTBL:	DB	('?'+80H)
	DW	STHELP
	DEFM	'HEL'
	DB	('P'+80H)
	DW	STHELP
	DEFM	'AN'
	DB	('S'+80H)
	DW	ST_ANS
	DEFM	'OR'
	DB	('G'+80H)
	DW	ST_ORG
	DB	'O'
	DB	('N'+80H)
	DW	ST_ON
	DEFM	'SB'
	DB	('1'+80H)
	DW	ST_SB1
	DEFM	'SB1'
	DB	('5'+80H)
	DW	STSB15
	DEFM	'SB'
	DB	('2'+80H)
	DW	ST_SB2
	DEFM	'BC'
	DB	('5'+80H)
	DW	ST_BC5
	DEFM	'BC'
	DB	('6'+80H)
	DW	ST_BC6
	DEFM	'BC'
	DB	('7'+80H)
	DW	ST_BC7
	DEFM	'BC'
	DB	('8'+80H)
	DW	ST_BC8
	DEFM	'NP'
	DB	('A'+80H)
	DW	ST_NPA
	DEFM	'EP'
	DB	('A'+80H)
	DW	ST_EPA
	DEFM	'OP'
	DB	('A'+80H)
	DW	ST_OPA
	DEFM	'SCRN3'
	DB	('0'+80H)
	DW	STSCR3
;
	DEFM	'SCRN8'
	DB	('0'+80H)
	DW	STSCR8
;
	DEFM	'WAI'
	DB	('T'+80H)
	DW	STWAIT
	DB	0
;
***********************************************************************
* END OF CMDTBL
***********************************************************************
ST_ORG:	CALL	HANGUP
	JR	PRTMOD
;
ST_ON:	LD	A,0
	CALL 	SEIZE
	JR	PRTMOD
;
ST_ANS:	LD	A,0FFH
	CALL	SEIZE
	JR	PRTMOD
;
PRTMOD:	JP	MODESW
;
ST_SB1:	LD	B,STPB1
SET_SB:	LD	A,(MODEWD)
	AND	03FH
	OR	B
	LD	(MODEWD),A
	CALL	SBSHOW
	LD	A,IR
	JP	CHGMOD
;
STSB15:	LD	B,STPB15
	JR	SET_SB
;
ST_SB2:	LD	B,STPB2
	JR	SET_SB
;
ST_BC5:	LD	B,BITS5
	JR	SET_BC
;
ST_BC6:	LD	B,BITS6
	JR	SET_BC
;
ST_BC7:	LD	B,BITS7
	JR	SET_BC
;
ST_BC8:	LD	B,BITS8
SET_BC:	LD	A,(MODEWD)
	AND	0F3H
	OR	B
	LD	(MODEWD),A
	CALL	BCSHOW
	LD	A,IR
	JP	CHGMOD
;
ST_NPA:	LD	B,NO_PAR
	JR	SETPAR
;
ST_OPA:	LD	B,ODDPAR
	JR	SETPAR
;
ST_EPA:	LD	B,EVNPAR
;
SETPAR:	LD	A,(MODEWD)
	AND	0CFH
	OR	B
	LD	(MODEWD),A
	CALL	PASHOW
	LD	A,IR
	JP	CHGMOD
;
STSCR3: PUSH	HL
	LD	HL,0EA68H
	LD	(HL),1EH
	POP	HL
	RET
;
STSCR8: PUSH	HL
	LD	HL,0EA68H
	LD	(HL),50H
	POP	HL
	RET
;
STHELP:
	LD	DE,HLPMSG
	CALL	FRINT
	RET
;
STWAIT:	PUSH	HL
	LD	C,SBLANK
	CALL	MEX
	JR	C,WAITER
	LD	DE,WAITBL
	LD	C,LOOKUP
	CALL	MEX
	JR	C,WAITER
	LD	A,L
	LD	HL,CARTMW
	LD	(HL),A
	POP	HL
	CALL	WTSHOW
	RET
;
WAITER:	POP	HL
	LD	DE,BADMSG
	CALL	FRINT
	RET
;
WAITBL:	DB	('5'+80H)
	DW	25
	DB	'1'
	DB	('0'+80H)
	DW	50
	DB	'1'
	DB	('5'+80H)
	DW	75
	DB	'2'
	DB	('0'+80H)
	DW	100
	DB	'2'
	DB	('5'+80H)
	DW	125
	DB	'3'
	DB	('0'+80H)
	DW	150
	DB	'3'
	DB	('5'+80H)
	DW	175
	DB	'4'
	DB	('0'+80H)
	DW	200
	DB	'4'
	DB	('5'+80H)
	DW	225
	DB	'5'
	DB	('0'+80H)
	DW	250
	DB	00H
;
***********************************************************************
* END OF SET COMMANDS
***********************************************************************
;MESSAGE AREA
;
VERMSG:	DEFM	'ADAMEX overlay v1.4'
	DB	07H
	DB	CR,LF,'$'
;
EOSMSG:	DB	CEOS,'$'
;
CLSMSG:	DB	CCLS,'$'
;
;
STERRM:	DEFM	'  ++ COMMAND NOT FOUND ++'
	DB	CR,LF,07H,'$'
;
ST_MSG:
	DEFM	'  MODEM PARAMETERS'
	DB	CR,LF,LF,'$'
MODMSG:
	DEFM	'  MODE:            '
	DB	'$'
;
ORGMSG:	DEFM	'ORIGINATE'
	DB	'$'
;
ANSMSG:	DEFM	'ANSWER'
	DB	'$'
;
ST1MSG:	DB	CR,LF
	DEFM	'  BITS/CHARACTER:  '
	DB	'$'
;
ST2MSG:	DB	CR,LF
	DEFM	'  PARITY:          '
	DB	'$'
;
NONMSG:	DEFM	'NONE'
	DB	'$'
;
ODDMSG:	DEFM	'ODD'
	DB	'$'
;
EVNMSG:	DEFM	'EVEN'
	DB	'$'
;
ST3MSG:	DB	CR,LF
	DEFM	'  STOP BITS:       '
	DB	'$'
;
SB1MSG:	DB	'1',CR,LF,20H,'$'
;
SB5MSG:	DEFM	'1.5'
	DB	CR,LF,20H,'$'
;
SB2MSG:	DB	'2',CR,LF,20H,'$'
;
BADMSG:	DEFM	'  ++ BAD VALUE ++'
	DB	07H,'$'
;
NOCARM:
	DEFM	' NO'
;
CARMSG:	DEFM	' CARRIER ON LINE'
	DB	CR,LF,'$'
SRTWTS:
	DEFM	'  WAIT FOR CARRIER '
	DB	'$'
;
;
LOSCAM:	DB	07H,CR,LF
	DEFM	'  ++ LOST CARRIER ++'
	DB	07H,CR,LF,LF,'$'
;
SEC_5:	DB	'5','$'
SEC_10:	DB	'1','0','$'
SEC_15:	DB	'1','5','$'
SEC_20:	DB	'2','0','$'
SEC_25:	DB	'2','5','$'
SEC_30:	DB	'3','0','$'
SEC_35:	DB	'3','5','$'
SEC_40:	DB	'4','0','$'
SEC_45:	DB	'4','5','$'
SEC_50:	DB	'5','0','$'
SECM:	DEFM	' SEC.'
	DB	CR,LF,'$'
;
;
HLPMSG:	DB	CR,LF
	DEFM	'  SET <command>'
	DB	CR,LF
	DEFM	'  Where <command> is one of:'
	DB	CR,LF
	DEFM	' ?, HELP, ORG, ANS, ON, BC5,'
	DB	CR,LF
	DEFM	' BC6, BC7, BC8, SB1, SB15, SB2'
	DB	CR
	DEFM	' NPA, EPA, OPA, SCRN30, SCRN80'
	DB	CR
	DEFM	' WAIT <5-50> (5 sec. steps)'
	DB	CR,LF
	DB	'$'
	DB	0
;
;
	END
